home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
bbsutil
/
hsrc_117.zip
/
CVRTSTRG.C
< prev
next >
Wrap
C/C++ Source or Header
|
1990-08-21
|
2KB
|
87 lines
#include "msgg.h"
#include "twindow.h"
#include "headedit.h"
/* Expand metastrings in passed string */
char * pascal convertstring (char *a) { /* Not reentrant */
char arg=0;
char *pp;
char *p;
char strr[256];
char cvstr[364];
char middle[82];
strset(strr,0);
strset(cvstr,0);
strcpy(strr,a);
p=strr;
pp=cvstr;
while(*p) {
if (*p=='*' && p[1]) {
arg=p[1];
p+=2;
switch ((int)arg) {
case 'F': /* From Name */
strcpy(middle,msg.from);
turn_spaces_to_uls(middle);
strcat(pp,middle);
break;
case 'f': strcat(p,msg.from);
break;
case 'T': /* To Name */
strcpy(middle,msg.to);
turn_spaces_to_uls(middle);
strcat(pp,middle);
break;
case 't': strcat(pp,msg.to);
break;
case 'd': strcat(pp,msg.date);
break;
case 'D': /* Msg Date */
strcpy(middle,msg.date);
turn_spaces_to_uls(middle);
strcat(pp,middle);
break;
case 'N': strcat(pp,currarea->name);
break;
case 'A': /* Area Name */
strcpy(middle,currarea->name);
turn_spaces_to_uls(middle);
strcat(pp,middle);
break;
case '#': sprintf(middle,"%u",messno);
strcat(pp,middle);
break;
case 'a': sprintf(middle,"%u",areano);
strcat(pp,middle);
break;
case 'P': strcat(pp,path);
break;
default: strcat(pp,"*");
p--;
break;
}
}
else {
*pp=*p;
pp[1]=0;
p++;
}
while(*pp)pp++;
}
return (cvstr);
}
void pascal turn_spaces_to_uls (char *a) {
char *p;
while (p=strchr(a,' ')) *p='_';
}